// 处理首页相关的路由
const express = require('express');
const router = express.Router();
const path = require('path');
const article = require('../models/article');
const commend = require('../models/commend');
const {generatorToken} = require('../tools/token')

// Article
// 首页获取页面的接口
router.get('/',(req,res) => {
    res.sendFile(path.resolve('./static/home.html'));
})

// 负责发送最新的一篇文章的数据给浏览器 getArticle接口
router.get('/getArticle',(req,res) => {
    article.find({}).sort({time:-1}).limit(1).then((data) => {
        res.send(data);
        // console.log(data);
    }).catch((err) => {
        res.send(err);
        // console.log(err);
    })
})

// 负责发送点击次数最多的5篇文章发送给浏览器 getHotArticleList
router.get('/getHotArticleList',(req,res) => {{
    article.find({}).sort({count:-1}).limit(5).then((data) => {
        res.send(data);
        // console.log(data);
    }).catch((err) => {
        res.send(err);
    })
}})

// 获取最新的5条评论
router.get('/getNewCommendList',(req,res) => {
    commend.find({}).sort({date:-1}).limit(5).then((data) => {
        // console.log(data);
        res.send(data);
    }).catch((err) => {
        // console.log(err);
        res.send(err);
    })
})

// 将文章的数量发送给浏览器 获取文章的数量来标号 ArticleNums
router.get('/ArticleNums',(req,res) => {
    article.find({}).then((data) => {
        res.send(`${data.length}`);
    }).catch((err) => {
        res.send(err);
    })
})

// 获取最新的5篇文章 根据页面的标号 分页 getNewAriticleList
router.get('/getNewArticleList',(req,res) => {
    var {page} = req.body;
    article.find({}).sort({time:-1}).skip((page-1)*5).limit(5).then((data) => {
        res.send(data);
        // console.log(page);
    }).catch((err) => {
        res.send(err);
    })
})

// 底部获取所有文章
router.get('/getAllArticleAtHome',(req,res) => {
    article.find({}).then((data) => {
        res.send(data);
    }).catch((err) => {
        res.send(err);
    })
})

// page
// 获取page.html页面
router.get('/getPage',(req,res) => {
    res.sendFile(path.resolve('./static/page.html'));
})

// 根据浏览器传递的id发送文章的数据给浏览器 getOneArticleById接口
router.get('/getOneArticleById',(req,res) => {
    // 获取id
    var {id} = req.body;
    // console.log(req.body);
    article.find({_id:id}).then((data) => {
        res.send(data);
    }).catch((err) => {
        res.send(err);
    })
})

// 获取提交的评论 并且将提交的评论存储到commend集合中 注意fromId submitCommend接口
router.post('/submitCommend',(req,res) => {
    // 获取评论内容
    // console.log(req.body);
    var {commends,id} = req.body;

    // 获取commends信息
    var c = new commend({
        commend:commends,
        date:new Date().toLocaleString(),
        fromId:id
    })

    // 插入commend信息到commend表
    c.save().then(() => {
        res.send('评论成功');
    }).catch(() => {
        res.send('评论失败');
    })
})

// 根据相关文章的id获取对应fromId的评论 getCommendById接口
router.get('/getCommendById',(req,res) => {
    var {id} = req.body;
    commend.find({fromId:id}).then((data) => {
        res.send(data);
    }).catch((err) => {
        res.send(err);
    })
})

// 登录页面实现
// 登录页面路由实现
router.get('/loginPage',(req,res) => {
    res.sendFile(path.resolve('./static/login.html'));
})

// login接口,用于用户管理员登录
router.post('/login',(req,res) => {
    var {username,password} = req.body;
    var token = generatorToken({username,password});
    // 通过cookie()把token设置到浏览器中
    res.cookie('token',token);
    res.send('登录成功');
})

module.exports = router;